package array.reverseVowel;

import java.util.HashSet;

/**
 * @Date 2020/04/11
 * @author 王光浩
 * @Thinking 使用双指针方法
 */
public class MyMethodTwo {
	public String reverseVowels(String s) {
		if(s.length()==0)return "";
		int left=0;
		int right=s.length()-1;
		char[] ret=new char[s.length()];
		HashSet<Character> set=new HashSet<Character>();
		set.add('a');
		set.add('e');
		set.add('i');
		set.add('o');
		set.add('u');
		set.add('A');
		set.add('E');
		set.add('I');
		set.add('O');
		set.add('U');
		//完成交换
		while(left<=right) {
			//查找左边第一个元音字母
			while(right>left && !set.contains(s.charAt(left))) ret[left]=s.charAt(left++); 
			//查找右边第一个元音字母
			while(right>left && !set.contains(s.charAt(right))) ret[right]=s.charAt(right--);
			ret[left]=s.charAt(right);
			ret[right]=s.charAt(left);
			right--;
			left++;
		}
		return String.valueOf(ret);
	}
}
